﻿using Modules.Project;
using PetaPoco;
using PmSoft;
using PmSoft.Caching;
using System.ComponentModel;

namespace Modules
{
    /// <summary>
    /// 保证金账户信息
    ///</summary>
    [TableName("project_guarantee_account")]
    [Description("保证金账户信息,唯一")]
    [PrimaryKey("id", AutoIncrement = true)]
    [CacheSetting(true)]
    [Serializable]
    public class ProjectGuaranteeAccount : IEntity
    {
        /// <summary>
        ///
        ///</summary>
        [Column("id")]
        public int Id { get; set; }

        /// <summary>
        /// 保证金类型（1：保证金账户 2：工程担保公司保函账户 3：工程保证保险 4：银行保函）
        ///</summary>
        [Column("type")]
        public 保证金类型 Type { get; set; }

        /// <summary>
        /// 保证金账户名称/工程担保公司名称/保险公司名称/担保银行名称
        ///</summary>
        [Column("name")]
        public string Name { get; set; }

        /// <summary>
        /// 账户编号
        ///</summary>
        [Column("code")]
        public string Code { get; set; }

        /// <summary>
        /// 开户银行
        ///</summary>
        [Column("bank_name")]
        public string BankName { get; set; }

        /// <summary>
        /// 开户银行账号
        ///</summary>
        [Column("bank_no")]
        public long? BankNo { get; set; }

        /// <summary>
        /// 人设部名称
        ///</summary>
        [Column("rs_name")]
        public string RsName { get; set; }

        /// <summary>
        /// 工程担保公司社会信用代码/保险公司信用代码/担保银行统一信用代码
        ///</summary>
        [Column("socialcreditcode")]
        public string Socialcreditcode { get; set; }

        /// <summary>
        /// 工程担保公司负责人/保险公司负责人
        ///</summary>
        [Column("superintendent")]
        public string Superintendent { get; set; }

        /// <summary>
        /// 工程担保公司负责人联系电话/保险公司负责人电话
        ///</summary>
        [Column("superintendent_mobile")]
        public string SuperintendentMobile { get; set; }

        /// <summary>
        /// 工程担保公司注册金额
        ///</summary>
        [Column("registered_capital")]
        public decimal? RegisteredCapital { get; set; }

        /// <summary>
        /// 创建人
        ///</summary>
        [Column("creator")]
        public string Creator { get; set; }

        /// <summary>
        /// 创建时间
        ///</summary>
        [Column("create_time")]
        public DateTime? CreateTime { get; set; }

        #region IEntity 成员

        [Ignore]
        object IEntity.EntityId { get { return this.Id; } }

        #endregion IEntity 成员
    }
}